A root-of-unity, or De Moivre number, is any complex number that equals 1 when raised to some integer power. Roots-of-unity are used in many branches of mathematics, and are especially important in number theory, field theory, and the discrete Fourier transform. Roots-of-unity multiplication is used in digital signal processing (DSP). In many cases, multiplying two roots-of-unity represented in fixed-point format can create an overflow in the result. In some conventional processors with no saturation hardware (HW) mechanism available, the resulting error can be large.
Conventional solutions include implementing a control code for checking each roots-of-unity multiplication result (i.e., to check the absolute value of the result). The absolute value for roots-of-unity multiplication should be one. An overflow situation can result in a significant error. If an overflow is detected, a close approximation for the result can be obtained using a software solution. Another approach is to change the implementation of the multiplication, and use a method that enables hardware saturation. Conventional approaches have disadvantages of consuming more cycles, and therefore can degrade the performance.
It would be desirable to implement a method for avoiding overflow in roots-of-unity multiplication.